﻿<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Reclamos.aspx.cs" MasterPageFile="MasterPage.Master" Inherits="Web.Pages.Reclamos" %>
<%@ Register Src="~/CustomControls/DialogReclamos.ascx" TagPrefix="uc1" TagName="DialogReclamos" %>

<asp:Content ID="mainContent" ContentPlaceHolderID="MainContent" runat="Server" >

    <!-- Estilos -->
    <style type="text/css" >
    </style>
    <!-- Fin de [Estilos] -->

    <!-- $(document).ready -->  
    <script type="text/javascript" >
        
        var controles = { General: {}, Tablas: { Reclamos: {} } };
        /* General */
        /* Tablas */
        controles.Tablas.Reclamos.Id                    = "tblReclamos";

        $(document).ready(function()
        {            
            procesarParametros();
            cargarPagina_Reclamos();
        });
        function procesarParametros()
        {
            Framework.Page.Parameters.parseQueryString();
        }
        function cargarPagina_Reclamos()
        {
            Site.Messages.showLoadingMessage();

            Site.Page.setTitle("Reclamos");

            inicializarGrillaReclamos();
            
            Site.Messages.hideLoadingMessage();
        }
    </script>
    <!-- Fin de [$(document).ready] -->
    
    <!-- Grilla Reclamos -->
    <script type="text/javascript" >
        function inicializarGrillaReclamos()
        {
            var estadosReclamo = Helpers.SelectListHelper.getDataFromSelectList(controles.General.EstadoReclamo, true);

            var oculto = false;
            if ( !validarPermisosAdmin(_CurrentUser.Tipo) )
            {
                Framework.Page.Parameters.idProveedor = _CurrentUser.Id;
                oculto = true;
            }

            var colModel =
            [
                { name: 'Id',           index: 'Id',                        label: 'Id Reclamo',    align: 'center', hidden: true,      search: false,  editable: false, sortable: false,   dataType: 'Int32' },
                { name: 'Ver',          index: 'Ver',                       label: ' ',             align: 'center', hidden: false,     search: false,  editable: false, sortable: false,   dataType: 'String', width: 25 },
                { name: 'IdPago',       index: 'Pago.Id',                   label: 'Id Pago',       align: 'center', hidden: true,      search: false,  editable: false, sortable: false,   dataType: 'Int32' },
                { name: 'IdGuion',      index: 'Pago.Guion.Id',             label: 'Id Guion',      align: 'center', hidden: true,      search: true,   editable: false, sortable: true,    dataType: 'Int32' },
                { name: 'Episodio',     index: 'Pago.Guion.Episodio',       label: 'Ep.',           align: 'center', hidden: false,     search: true,   editable: false, sortable: true,    dataType: 'Int32', width: 70, searchoptions: { sopt: ['eq', 'ne', 'gt', 'lt' ] } },
                { name: 'Titulo',       index: 'Pago.Guion.Titulo',         label: 'Titulo',        align: 'center', hidden: false,     search: true,   editable: false, sortable: true,    dataType: 'String', width: 300, searchoptions: { sopt: ['eq', 'ne', 'bw','cn' ] } },
                { name: 'IdProveedor',  index: 'Pago.Proveedor.Id',         label: 'Id Proveedor',  align: 'center', hidden: true,      search: false,  editable: false, sortable: false,   dataType: 'Int32' },
                { name: 'Proveedor',    index: 'Pago.Proveedor.Apellido',   label: 'Proveedor',     align: 'center', hidden: oculto,    search: true,   editable: false, sortable: true,    dataType: 'String', width: 250, searchoptions: { sopt: ['eq', 'ne', 'bw','cn' ] } },
                { name: 'Fecha',        index: 'Fecha',                     label: 'Fecha',         align: 'center', hidden: false,     search: true,   editable: false, sortable: true,    dataType: 'DateTime', width: 100, searchoptions: { sopt: ['eq', 'ne', 'gt', 'lt' ], dataInit: datePick, attr: { title:'Seleccionar Fecha' } }, formatter: 'date', formatoptions: { srcformat: 'Y-m-d', newformat: 'd/m/Y' } },
                { name: 'IdEstado',     index: 'Estado.Id',                 label: 'Id Estado',     align: 'center', hidden: true,      search: false,  editable: false, sortable: false,   dataType: 'Int32' },
                { name: 'Estado',       index: 'Estado.Nombre',             label: 'Estado',        align: 'center', hidden: false,     search: true,   editable: false, sortable: true, dataType: 'String', width: 250, stype: 'select', searchoptions: { sopt: ['eq', 'ne'], value: estadosReclamo }, formatter: jqGridFormatter_EstadoReclamo }
            ];

            var gridOpts                            = Helpers.jqGridHelper.createGridObject();
            gridOpts.IdGrid                     = "{0}_Grid".format(controles.Tablas.Reclamos.Id);
            gridOpts.IdPager                    = "{0}_GridPager".format(controles.Tablas.Reclamos.Id);
            gridOpts.IdColModel                 = "{0}_GridColModel".format(controles.Tablas.Reclamos.Id);
            gridOpts.ColModel                   = colModel;
            gridOpts.Width                      = _GridInfo.Defaults.Width;
            gridOpts.Height                     = _GridInfo.Defaults.Height;
            gridOpts.Title                      = setGridTitle("Reclamos");
            gridOpts.DefaultSortColumn          = "Pago.Guion.Episodio";
            gridOpts.DefaultSortOrder           = "asc";
            gridOpts.PageSizeList               = [5, 10, 20, 30, 50, 100];
            gridOpts.DefaultPageSize            = _GridInfo.Defaults.PageSize;
            /* jqGrid Properties */
            gridOpts.AutoWidth                  = false;
            gridOpts.ShrinkToFit                = false;
            gridOpts.LoadFilters                = grillaReclamos_LoadFilters;
            gridOpts.LoadFiltersOnSearch        = true;
            gridOpts.OnLoadComplete             = grillaReclamos_OnLoadComplete;
            gridOpts.EditMode                   = Helpers.jqGridHelper.EditMode.Modal;
            /* jqGrid Instance Urls & Params */
            gridOpts.UrlGet                     = "obtenerReclamos";
            /* jqGrid Pager Buttons */
            gridOpts.ShowSearch                 = true;
            gridOpts.ShowRefresh                = true;

            Helpers.jqGridHelper.setGridOpts(gridOpts);
        }
        function grillaReclamos_LoadFilters()
        {
            var rules = [];

            if (!isEmpty(Framework.Page.Parameters.idProveedor))
            {
                var condicionProveedor =
                {
                    condition: "AND",
                    set:
                    [
                        { match: "AND", field: "Pago.Proveedor.Id", op: "eq", data: Framework.Page.Parameters.idProveedor }
                    ]
                };
                rules.push( condicionProveedor );
            }

            return JSON.stringify(rules);
        }
        datePick = function(elem)
        {
            jQuery(elem).datepicker();
            //jQuery(elem).datepicker( { minDate: -20, maxDate: "+1M +10D" } );
        }
        function grillaReclamos_OnLoadComplete()
        {
            grillaReclamos_AgregarHandlersBotones();
        }
        function grillaReclamos_AgregarHandlersBotones()
        {
            $(".btnVerReclamo").click
            (
                function()
                {
                    var idReclamo = $(this).attr("id").replace("btnVerReclamo_", "");
                    verReclamo( idReclamo );
                }
            );
            mostrarTooltip(".btnVerReclamo", "Ver detalle del Reclamo");

            $(".btnEditarGuion").click
            (
                function()
                {
                    var idGuion = $(this).attr("id").replace("btnEditarGuion_", "");
                    editarGuion( idGuion );
                }
            );
            mostrarTooltip(".btnEditarGuion", "Ver detalle del Guión");

            $(".btnEditarUsuario").click
            (
                function()
                {
                    var idProveedor = $(this).attr("id").replace("btnEditarUsuario_", "");
                    editarUsuario( idProveedor );
                }
            );
            mostrarTooltip(".btnEditarUsuario", "Ver detalle del Proveedor");
        }
        function grillaReclamos_Refrescar()
        {
            debugger;
            Helpers.jqGridHelper.reloadGrid("tblReclamos_Grid");
        }
    </script>
    <!-- Fin de [Grilla Reclamos] -->

    <!-- Diálogo Reclamos -->
    <script type="text/javascript" >
        function verReclamo( idReclamo )
        {
            var parametros = new Object();
                parametros.idReclamo = idReclamo;

            Site.Messages.showLoadingMessage();

            Helpers.AJAXHelper.invoke("obtenerReclamo", JSON.stringify(parametros), verReclamo_Respuesta, null);
        }
        function verReclamo_Respuesta(datos)
        {
            Site.Messages.hideLoadingMessage();

            var respuestaInfo = jQuery.parseJSON(datos.d);
            if ( respuestaInfo.Resultado )
            {
                var reclamoInfo = respuestaInfo.Valor;
                //{
                //    Id: Constants.Entities.DefaultId,
                //    IdEstado: _EstadosReclamo.SIN_ATENDER.Id,
                //    IdPago: idPago,
                //    GuionTitulo: guionTitulo,
                //    GuionEpisodio: guionEpisodio,
                //    Usuario: null,
                //    Items: []
                //};
                DialogReclamos.Open(reclamoInfo);
            }
        }        
    </script>
    <!-- Fin de [Diálogo Reclamos] -->

    <!--HTML-->
    <div id="content" style="margin:0 auto; width:90%;" >
        
        <uc1:DialogReclamos runat="server" ID="DialogReclamos" Title="Ver Reclamo" OnClose="grillaReclamos_Refrescar" />

        <br />

        <!-- Grilla Reclamos -->
        <div class="jqGridContainer" >
            <table id="tblReclamos_Grid" ></table>
            <div id="tblReclamos_GridPager" ></div>
            <input type="hidden" id="tblReclamos_GridColModel" />      
        </div>

        <br />

    </div>

</asp:Content>